package com.smile.frame.api.es.service;

import com.smile.frame.api.es.document.Product;
import com.smile.frame.api.es.dto.QueryProductDTO;
import com.smile.frame.common.page.PageResult;

import java.io.IOException;
import java.util.List;

/**
 * 产品
 *
 * @author LGC
 */
public interface IEsProductService {

    /**
     * 插入产品文档
     *
     * @param product
     * @return
     * @throws Exception
     */
    Boolean insertProduct(Product product);

    /**
     * 批量插入产品文档
     *
     * @param products
     * @return
     */
    Boolean batchInsertProduct(List<Product> products);

    /**
     * 根据产品code删除
     *
     * @param codeList
     * @return
     */
    Boolean batchDeleteProductByProductCode(List<String> codeList);


    /**
     * 更新
     *
     * @return
     */
    Boolean updateProductByProductCode(Product product);

    /**
     * 分页查询产品
     *
     * @param dto
     * @return
     * @throws IOException
     */
    PageResult<Product> searchProductPage(QueryProductDTO dto);

    List<Product> searchProducts(String keyword, int page, int rows);

}
